package com.design.simpleFactoryPattern;


/**
 * 简单工厂模式
 * 优点：1、工厂类只提供创建产品的方法，不会因为产品种类而改变；2、客户端不需要知道产品种类，只需要知道产品类型即可；3、符合开闭原则。
 */
public class SimpleFactory {

    public static Product createProduct(String type) {
        if ("A".equals(type)) {
            return new ProductA();
        } else if ("B".equals(type)) {
            return new ProductB();
        }
        return null;
    }
    public static void main(String[] args) {
        Product product = SimpleFactory.createProduct("A");
        product.method();
        Product product2 = SimpleFactory.createProduct("B");
        product2.method();
    }
}

abstract class Product {
    public abstract void method();
}

class ProductA extends Product {
    @Override
    public void method() {
        System.out.println("ProductA");
    }
}

class ProductB extends Product {
    @Override
    public void method() {
        System.out.println("ProductB");
    }
}
